Static-Anweisung

       

Wird auf Prozedurebene verwendet, um Variablen zu deklarieren und den n÷tigen Speicher zu reservieren. Mit der Static-Anweisung deklarierte Variablen behalten ihren Wert, solange der Code ausgefⁿhrt wird.

Syntax

Static VarName[([Indizes])] [As [New] Typ] [, VarName[([Indizes])] [As [New] Typ]] . . .

Die Syntax der Static-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
VarName Erforderlich. Name der Variablen gemΣ▀ den Standardkonventionen fⁿr Namen von Variablen.
Indizes Optional. Dimensionen einer Datenfeldvariablen. Bis zu 60 Dimensionen sind zulΣssig. Die Syntax fⁿr das Argument Indizes ist:
  [Untergrenze To] Obergrenze [,[Untergrenze To] Obergrenze] . . .
  Wenn nicht explizit in Untergrenze angegeben, wird die Untergrenze eines Datenfeldes durch die Option Base-Anweisung gesteuert. Die Untergrenze ist Null, wenn keine Option Base-Anweisung vorhanden ist.
New Optional. Dieses Schlⁿsselwort erm÷glicht das implizite Erstellen eines Objekts. Wenn Sie New bei der Deklaration der Objektvariablen verwenden, wird eine neue Instanz des Objekts aufgrund des ersten Verweises erstellt, so da▀ Sie die Set-Anweisung fⁿr die Zuweisung des Objektverweises nicht verwenden mⁿssen. Das Schlⁿsselwort New kann nicht zur Deklaration von Variablen eines integrierten Datentyps oder zur Deklaration von Instanzen abhΣngiger Objekte verwendet werden.
Typ Optional. Datentyp der Variablen. ZulΣssige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstⁿtzt), Date, String, (fⁿr Zeichenfolgen variabler LΣnge), String * LΣnge (fⁿr Zeichenfolgen fester LΣnge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp. Verwenden Sie fⁿr jede deklarierte Variable einen separaten As Typ-Abschnitt.

Bemerkungen

Wenn der Code eines Moduls ausgefⁿhrt wird, behalten mit der Static-Anweisung deklarierte Variablen ihren Wert, bis das Modul zurⁿckgesetzt oder neu gestartet wird. In nichtstatischen Prozeduren k÷nnen Sie die Static-Anweisung verwenden, um explizit Variablen zu deklarieren, die nur innerhalb der Prozedur verfⁿgbar sind, deren Lebensdauer aber der des Moduls entspricht, in dem die Prozedur definiert wurde.

Mit einer Static-Anweisung innerhalb einer Prozedur k÷nnen Sie den Datentyp einer Variablen deklarieren, die ihren Wert zwischen Prozeduraufrufen behΣlt. Die folgende Anweisung deklariert zum Beispiel ein Datenfeld fester Gr÷▀e fⁿr ganze Zahlen:

Static AngestellenAnzahl(200) As Integer

Die folgende Anweisung deklariert eine Variable fⁿr eine neue Instanz einer Tabelle:

Static X As New Worksheet

Wenn das Schlⁿsselwort New nicht bei der Deklaration einer Objektvariablen verwendet wird, existiert momentan keine Instanz des Objekts. Einer Variablen mit einem Verweis auf ein Objekt mu▀ mit der Set-Anweisung ein existierendes Objekt zugewiesen werden, bevor sie verwendet werden kann. Eine deklarierte Objektvariable hat vor dem Zuweisen eines Objekts den Spezialwert Nothing, der anzeigt, da▀ die Variable auf keine bestimmte Instanz eines Objekts verweist. Wenn Sie das Schlⁿsselwort New bei der Deklaration verwenden, so wird eine Instanz des Objekts aufgrund der ersten auf das Objekt verweisenden Referenz erstellt.

Wenn Sie keinen Datentyp oder Objekttyp angeben und auch keine DefTyp-Anweisung in dem Modul verwenden, erhΣlt die Variable standardmΣ▀ig den Datentyp Variant.

Anmerkung   Die Anweisung Static und das Schlⁿsselwort Static wirken sich unterschiedlich auf die Lebensdauer von Variablen aus. Wenn Sie eine Prozedur mit dem Schlⁿsselwort Static deklarieren (wie in Static Sub VerkaufsZahlen()), wird der Speicherplatz fⁿr alle lokalen Variablen in der Prozedur einmal reserviert, und die Werte der Variablen bleiben wΣhrend der gesamten Laufzeit des Codes erhalten. In nichtstatischen Prozeduren wird der Speicherplatz fⁿr Variablen bei jedem Aufruf der Prozedur neu reserviert und am Ende der Prozedur wieder freigegeben. Die Anweisung Static deklariert Variablen in nichtstatischen Prozeduren als statisch mit dem Ergebnis, da▀ diese Variablen ihren Wert wΣhrend der gesamten Laufzeit des Programms behalten.

Bei der Initialisierung wird numerischen Variablen der Wert 0 und Zeichenfolgen variabler LΣnge eine Null-Zeichenfolge ("") zugewiesen. Zeichenfolgen fester LΣnge werden mit Nullen aufgefⁿllt, und Variant-Variablen werden mit Empty initialisiert. Alle Elemente einer Variablen mit einem benutzerdefinierten Typ werden genauso initialisiert wie eigenstΣndige Variablen des entsprechenden Datentyps.

Anmerkung   Wenn Sie die Static-Anweisung innerhalb einer Prozedur verwenden, sollten Sie sie zusammen mit allen anderen Deklarationen, wie beispielsweise der Dim-Anweisung (sofern vorhanden), an den Anfang der Prozedur stellen.